RoboFinder is good enough to be shareware, but I am not prepared to provide the amount of support that I think paying customers deserve (although I will certainly try to help if you have problems). So it’s freeware, but with a catch: you don’t pay me anything, but if you like RoboFinder and use it often, please show your appreciation by giving a donation to your favorite charity.
RoboFinder may be freeware, but it is not public domain. It may not be altered in any way. No fee (other than standard downloading fees) may be charged for the distribution of RoboFinder. It may not be distributed with other software on physical media without permission.
RoboFinder is provided “as-is” without warranty of any kind. The author is not responsible for any problems that may result from the use of this program. Careless use of RoboFinder can result in data loss. Be very sure that it works correctly in your system before you entrust it with valuable data.
UPGRADING?
If you are upgrading from an earlier version of RoboFinder, see the VERSION HISTORY section at the end of this document for important information on bug fixes, changes, and enhancements.
WHAT IS IT?
RoboFinder is a script-driven ‘batch’ utility for automating many file management tasks. With RoboFinder, you can write scripts containing simple english-like commands that:
• Search for, copy, move, rename, trash and erase files and folders
• Branch and loop based on user input or existence of particular items
• Treat aliases as real files or as alias records
• Interface easily and usefully with QuicKeys™
Ideal uses for RoboFinder include any file management task you need to perform frequently:
• Loading a RAM disk with your favorite files
• Doing ‘quick and dirty’ backups
• Collecting files of a particular type in a particular location
• Erasing leftover items created by untidy applications
RoboFinder only works with System 7.0 or later.
SCRIPT FILES
Since RoboFinder doesn’t include text editing capabilities, you must use a text editing application, such as TeachText, to create and modify scripts. RoboFinder will open any document of type TEXT; this is TeachText’s standard format.
When you open a text file using RoboFinder's Open & Run… command (instead of opening from the Finder), you will have the opportunity to change the file into a RoboFinder document. To edit a script after it has been converted to a RoboFinder document, either open it from within a text editor (like TeachText), or put the text editor (or an alias of it) on the desktop and drag scripts into it.
The script file format is straightforward: one command per line, maximum 255 characters each line. Spaces and tabs at the beginning of a line are ignored, so commands may be indented. A maximum of 20 command names, parameters, and keywords are permitted per line; extra items are ignored.
Blank lines are ignored, as are lines that start with any punctuation character (except a colon).
SCRIPT EXECUTION
You can run scripts from the Finder or open them from within RoboFinder. If you select multiple scripts in the Finder and open them together, they will be executed in alphabetical order.
As soon as you open a script it starts running. If Show Commands is checked, a script window appears which shows the commands as they are executed.
You can check Quit When Done to have RoboFinder quit after all scripts have finished executing. If an error dialog appears when Quit When Done is checked, RoboFinder will automatically quit after 30 seconds without user activity.
To stop execution of a script, press Command-Period.
Settings and variables are preserved until you quit RoboFinder, so it is possible to run multiple scripts in one session that depend on previous scripts.
If the script window doesn't appear even when Show Commands is checked, quit, throw away the RoboFinder Prefs file (in the Preferences folder) and run RoboFinder again.
PATHNAMES AND DEFAULT FOLDERS
Most RoboFinder commands take pathnames as parameters. A pathname is a list of the names of disks and folders that lead to a particular item, separated by colons. For example, if you have a disk "HD20" with a folder "Current Work" in it, with a document "Baker Account" in that folder, the full pathname to the document would be "HD20:Current Work:Baker Account".
RoboFinder lets you set up a default folder, so that you don’t have to use full pathnames if you are doing a lot of things in the same folder. For instance, continuing with the above example, if you also had a document "Phone List" in the "Current Work" folder, you could use the SETFOLDER command to set the default folder to "HD20:Current Work" and then refer to the documents by their names only, "Baker Account" and "Phone List", without having to include the disk and folder names too.
You can also use the FINDFILE and FINDFOLDER commands to set the default folder (several other commands also change the default folder. This is noted where applicable). These commands search for a matching item. So, once again continuing from the above example, the command FINDFOLDER "Current Work" would do the same thing as the command SETFOLDER "HD20:Current Work".
While a default folder is defined, you can still use a full pathname to refer to an item in another location. If no default folder is defined, you must always use full pathnames. If you don’t put a disk name at the beginning of a pathname, RoboFinder will look for the item on the startup disk.
FLOPPY DISKS
You may use FLOPPY, FLOPPY1, and FLOPPY2, instead of the name of the disk, if you want to refer to a disk in a floppy drive (case is ignored; FLOPPY and floppy are equivalent). FLOPPY and FLOPPY1 refer to the internal drive; FLOPPY2 accesses the second/external floppy drive. This option is useful in scripts that need to access a floppy drive without knowing the name of the disk in the drive. For example, to create a new folder called Backup on the disk in the internal floppy drive, you could use the command NEWFOLDER "FLOPPY:BACKUP"; this would work no matter what the name of the floppy disk was.
THE DESKTOP FOLDER AND OTHER INVISIBLE ITEMS
Files or folders (not disks or the trash) that are out on the desktop are stored in an invisible folder called the “Desktop Folder”; there is one for each disk. If you want to access these items in your scripts, make sure you look for them in this folder. For example, if a file called "calendar" is on the desktop of the disk "HD20", refer to it in your script as "HD20:Desktop Folder:calendar", not "HD20:calendar".
RoboFinder allows you to access invisible items just like any others; you just have to know where to find them. The standard open file dialog (accessed with the commands GETFILE or GETFOLDER) will show invisible files, but it won’t show special System 7 invisible folders (such as the Desktop Folder).
VARIABLES
RoboFinder supports two kinds of variables: user and system. Both can be used as parameters for most commands. A variable name is a string starting with an exclamation point; the string can be up to 31 characters long and can contain any printable characters (except a colon). Case is ignored (i.e. the variable names !FILE and !file are equivalent).
System variables contain the results of past commands and usually have the same name as the command that changes them (e.g. the !FINDFILE variable contains the pathname of the file found by the last FINDFILE command). Some system variables can be changed by more than one command, this is noted in the command descriptions where applicable. RoboFinder uses these system variables: !ERROR, !FINDFILE, !FINDFOLDER,!GETFILE, !GETFOLDER, !GETNAME, !GETNEWFILE, and !SETFOLDER (there is also a short form for each that is the same as the short form of the corresponding command; see the command descriptions).
User variables are set and changed by SET and CLEAR commands (you can also clear system variables). A user variable can be set to a text string or to the value of another variable.
The values of variables are preserved until RoboFinder quits; scripts can refer to variables set by other scripts that ran earlier. See the COMMANDS AND PARAMETERS section for information on using variables with commands.
ERRORS
Causes of errors fall into two broad areas: those caused by mistakes in your script (e.g. a missing keyword), and system problems (e.g. a file referred to in the script can’t be found). RoboFinder can report over 50 descriptive error messages.
There are three levels of error severity: silent, which do not show a message, but are detectable in your script; normal, which cause a message to appear; and fatal, which force RoboFinder to quit. Silent errors occur when no matching items can be found in a search, or when a dialog box is cancelled. Fatal errors are caused by unexpected and unrecoverable internal problems.
If a command causes an error, the error message appears in the script window, and (depending on the settings), a dialog box also appears showing the error, and gives you the option of continuing or canceling execution. If execution of more scripts is pending, you have the option of cancelling their execution.
You can process errors in your script with the following commands:
— To control how errors are handled: see IGNOREERRORS
— To detect an error: see IF
— To clear the error status: see CLEAR
— To access the error message: use the !ERROR system variable
COMMANDS AND PARAMETERS
Commands, parameters, and keywords can be uppercase or lowercase or mixed; case only matters when giving the names of new items. In the command descriptions below, commands and keywords are shown in uppercase and examples (indicated by a ◊ character) are shown in mixed or lower case.
Most commands have shorthand versions. These are indicated with a slash; for example COPY/CP means that the shorthand form of COPY is CP.
Parameter types:
— <command> = RoboFinder command
— <condition> = condition tested by IF command
— <file> = file pathname (can be a variable)
— <folder> = folder pathname (can be a variable)
— <item> = file or folder pathname (can be a variable)
— <name> = text without colons or spaces, maximum 31 characters (can be a variable)
— <number> = a string of digits
— <signature> = 4-character Macintosh file type/creator signature
— <text> = any text (can be a variable)
— <variable> = user variable (text preceded by a ‘!’ character)
Keywords and modifiers (for example ON, OFF, EXACT, LOCAL, etc.) do not have shorthand forms. Keywords and modifiers that cannot be used together are separated by a bar character: ON | OFF. Optional items are shown below in square brackets.
If a parameter includes spaces or tabs, enclose it in double quotes: "System Folder", "Insert next disk, then click OK".
COMMANDS
BEEP/BP
— Plays the current system beep sound.
CLEAR/CLR <variable>
— Clears the value of a user or system variable. See the VARIABLES section for more information.
— If you refer to a cleared (or undefined) variable you will get an error.
— To set the value of a user variable, use SET.
◊ clear !appfolder — erases value of !appfolder user variable
◊ clr !findfile — erases value of !findfile system variable
◊ clear !error - clear error status
COPY/CP <item> [TO] <item> [REPLACE | ADD | SHOW]
— Copies files and folders.
— Unless you use ADD or REPLACE, if an item with the same name already exists in the destination, an error will occur. Use the REPLACE modifier to overwrite the item, or use ADD to keep the original item and make a copy of the new item called ‘<item> copy’. If an item called ‘<item> copy’ exists, a digit will be appended after ‘copy’.
— REPLACE is not available when copying folders. To replace a folder, TRASH it first.
— Use the SHOW modifier to show the progress of a folder copy (ignored when copying single files).
— The TO keyword is optional, it is available to improve readability.
— If there isn’t enough space to copy the item, the copy will not take place, and an error will occur.
◊ Copy "HD20:Docs:party invite" Zippy:Backups — copy to folder
◊ cp "Fax:Phone List" to "Fax:Phone List backup" replace — copy to new file, overwrite existing file
‚óä copy "Pollux:Current work Δí" "Castor:Backups" ‚Äî copy Current work Δí folder into Backups folder
DELETE/DEL/ERASE <file>
— Deletes a file immediately; does not put it in the trash. For safer operation, and to remove entire folders, use TRASH instead.
— If the file was accessed through an alias, the alias will be deleted too.
◊ Delete "My Picture"
END
—Stop the current script and start the next one (if more than one script was opened).
FINDAGAIN/FA
— Finds the next item that matches the search criteria from the last FINDFILE or FINDFOLDER.
— The matching item will be available in the !FINDFILE or !FINDFOLDER variable, depending on which command was used to start the search.
— If no matching item is found, a silent error will occur.
◊ findfile "report" — copy all items matching "report" to floppy disk
— Searches disks for a matching file, and sets the default folder to the folder containing the file. If no matching file is found, the default folder is not changed, and a silent error occurs.
— Use the EXACT or STARTS modifiers to look for an exact file name match or for a file that starts with the name. The default is to look for a match anywhere within the file name.
— Use the STARTUP modifier to only search the startup disk; use the LOCAL modifier to only search local disks – network disks will not be searched. The default is to search all disks.
— Use the TYPE and CREATOR modifiers to search for files with the indicated type and/or creator signature (if the signature includes one or more spaces, enclose it in double quotes).
— Use the NEWEST or OLDEST or LARGEST or SMALLEST modifiers to look for the newest or oldest, or largest or smallest matching file out of all the files that match the name.
— After a successful search, you can use the variable !FINDFILE or !FF to refer to the found file. For example, if you use FINDFILE followed by DELETE !FINDFILE, the found file will be erased.
— FINDFILE will not search a pathname, only a file name (i.e. no colons allowed). You cannot search a specific folder, only an entire disk. This is the same as the Finder’s Find… command.
— See SETFOLDER for more information on using default folders.
◊ FindFile letter starts — finds the first file with a name starting with the text "letter"
◊ FF "letter to john may 8" exact — find this file
◊ FF temp exact largest startup — search the startup disk only for the largest file named "temp"
◊ FF "MacWrite" type APPL — find the MacWrite application
— Allows the user to select a file with the standard open file dialog box. The text is used for the prompt in the dialog box.
— You may include up to four file type signatures after the prompt text; only files of the indicated type will be listed in the open file dialog. The default is to list all files, even invisible ones.
— After using GETFILE, use the variable !GETFILE or !GF to refer to the selected file in later commands.
— The default folder (see SETFOLDER) is set to the folder containing the selected file.
— If the user clicks Cancel, a silent error occurs.
— NOTE: If an alias is selected, it will be resolved regardless of the RESOLVEALIASES setting.
◊ GetFile "Select an application or text file:" TEXT APPL — List applications and text files
◊ GetFile "File to trash?" — Prompt user to select a file
  If not Error then Trash !getfile — trash the file the user selected
GETFOLDER/GFO <text>
— Like GETFILE, but…
— Selects a folder instead of a file.
— Use the variable !GETFOLDER or !GFO to refer to the selected folder in later commands.
— The default folder (see SETFOLDER) is set to the selected folder.
◊ GetFolder "Destination for letters?" — Prompt user to select a folder
  If not Error then Move letters !GetFolder — move item to selected folder
GETNAME/GN <text> [<name>]
— Allows the user to enter text to be used by later commands that require a <name> parameter.
— Shows a dialog with a text entry area and OK and Cancel buttons. If the user clicks Cancel, a silent error occurs.
— The initial value of the name is optional, if omitted, the initial name is ‘Untitled’.
— Use the variable !GETNAME or !GN to refer to the name in later commands that take a <name> parameter (FINDFILE, FINDFOLDER, GETNEWFILE, and RENAME)
— Names containing colon characters or names longer than 31 characters are not accepted.
◊ GetName "Rename file as:" — Prompt user to select a folder
  If not Error then rename temp !getname — rename file
GETNEWFILE/GNF <text> [<name>]
— Like GETFILE, but…
— Shows the standard dialog box to save a new file (this does not create the file; it only defines a new file name in a specific location that can be used as a destination by later commands).
— The initial value of the new file name is optional; if omitted, the initial name is ‘Untitled’.
— Use the variable !GETNEWFILE or !GNF to refer to the new file in later commands.
— The default folder (see SETFOLDER) is set to the parent folder of the new file.
◊ GetNewFile "File to copy to?" — Prompt user to select a file
  If not Error then Copy "Recipes" !GetNewFile — copy existing file to the new file
GOTO/GO <name>
— Branches execution to the label specified. See LABEL.
◊ Goto Loop — jump to line LABEL LOOP (or :LOOP)
IF [NOT] <condition> [THEN] <command> [ELSE <command>]
— A general testing and decision command; <condition> can be one of the following:
• !ERROR/!ERR/ERROR/ERR — If an error occurred earlier during the execution of the script, the condition is set to true (and the error status is cleared). The exclamation point is optional.
• EXISTS/EX <item> — If the item exists, the condition is set to true.
• CONFIRM/CNF <text> — Shows a dialog box containing the message text with OK and Cancel buttons. If OK is clicked, the condition is set to true.
• DECIDE/DCD <text> — Shows a dialog box containing the message text with Yes and No buttons. If Yes is clicked, the condition is set to true.
— Precede <condition> with NOT to negate it.
— The THEN keyword is optional, it is available to improve readability.
— Only one IF per line allowed.
◊ If not error then goto continue
◊ If not exists !FindFile prompt "File does not exist" else goto copy
◊ If confirm "Trash Temp Folder?" then trash "Temp Folder"
◊ If decide "Copy Files?" then goto copyfiles else end
IGNOREERRORS/IE ON | OFF
— When turned off (default), if an error occurs, the error message will appear in a dialog box with the option of continuing or canceling execution of the script. When turned on, error messages will be listed in the script window (if it is visible) and script execution will continue.
— The last value of this setting will be used the next time you run RoboFinder.
— This setting does not affect the error status checked by IF ERROR.
LABEL/LB/: <name>
— Marks this line in the script as a destination for GOTO.
— DOS batch file-style labels (preceding the label name with a colon) are optional. Spaces between the colon and the label name are allowed and are ignored. If you use this style of label, note that the colon must be the first character in the line; it cannot be indented.
◊ Label Loop — GOTO Loop will come here
◊ : DoCopy — GOTO DoCopy will come here
MESSAGE/MSG [<text> | CLOSE]
— Displays a window containing text.
— To remove the window, use MESSAGE CLOSE.
— The message window is automatically closed when the current script stops executing.
◊ message "Copying..." — show message window
◊ msg close — remove message window
◊ msg !error — show last error message
MOVE/MV <item> <folder>
— Moves an item into a different folder. To move to a different disk, use COPY instead.
◊ Move "HD20:Docs Folder:Letters Folder" "HD20:Old Docs Folder" — move one folder into another
NEWFOLDER/NF <folder>
— Creates a new folder.
— If the folder already exists, a silent error will occur.
— The default folder (see SETFOLDER) is set to the new folder.
◊ NF "HD20:Today's Items" — make a new folder in HD20 called ‘Today's Items’
OPEN <file> [WITH <file> ] [WAIT]
— Opens documents and applications.
— If you give one parameter, it can be either a document or an application. If it is an application, it will be started; if it is a document, it will be opened by its creating application.
— If you give two parameters (separated by WITH), the first must be an application, and the second a document for it to open. This allows you to open a file with an application other than the one that created it (as long as the application can understand that type of document).
— Use the WAIT modifier to wait until the opened application quits; otherwise RoboFinder will continue script execution in the background after OPENing.
◊ getfile "Select a text file:" TEXT — select a TEXT file
if not error open "apps:MacWrite" with !getfile — open it with MacWrite, continue running script
◊ open "docs:log file" wait — open this document, wait until application quits, then continue script
PAUSE/PS <number>
— Pauses a given number of seconds before continuing script execution.
— To stop pausing before the time is up, press Command-Period.
PROMPT/PR <text>
— Puts up a dialog box with the message text and an OK button. Script execution continues when OK is clicked.
◊ Prompt "Insert the backup disk and click OK..."
◊ if !error then prompt !error — show error message but allow script to continue
QUIT [ERROR]
— Quits RoboFinder immediately.
— Use the modifier ERROR after QUIT to return status to a calling QuicKeys sequence. This modifier is ignored if you are not running the script from QuicKeys. See QUICKEYS for more details.
◊ quit — just quit
◊ if error then quit error — quit and pass error status back to QuicKeys
QUITWHENDONE/QWD ON | OFF
— When turned off (default), RoboFinder does not quit when all scripts have finished. When turned on, RoboFinder quits as soon as all scripts have finished.
— The last value of this setting will be used the next time you run RoboFinder.
RENAME/RN <item> <name>
— Renames an item. The new name can’t contain any colons and must be less than 32 characters long.
◊ rename "Zippy:Docs Folder" "Old Docs Folder"
◊ RN "Zippy:Photos:President" "George"
RESOLVEALIASES/RA ON | OFF
— When turned on (default), commands operate on the file the alias points to; when turned off, the alias itself is the subject of later commands. For example, if RESOLVEALIASES is on, erasing an alias will also erase the file it points to; but if RESOLVEALIASES is off, only the alias will be erased.
— The last value of this setting will be used the next time you run RoboFinder.
— If you delete or trash items, turn off RESOLVEALIASES unless you have a good reason not to.
RUN <file>
— Ends the current script and starts another.
— Variables and settings from the previous script will be retained.
— Execution of the original script does NOT continue after the new script ends.
SET <variable> [TO] <text/variable>
— Sets the value of a user variable. See the VARIABLES section for information on variables.
— The variable can be set to text or to the value of another user or system variable. If set to a variable, that variable must be initialized or an error will occur.
— The TO keyword is optional, it is available to improve readability.
— To erase a variable, use CLEAR.
◊ set !appname !getfile — set the variable !appname to the file the user selected
◊ set !disk TO "Zeus" — set the variable !disk to the text “Zeus”
SETFOLDER/SF [<folder>]
— Sets or cancels the default folder, which must be specified as a full pathname (if you omit the disk name RoboFinder will assume that the folder is on the startup disk).
— To remove the default folder setting (and go back to using full pathnames), use SETFOLDER without any parameters.
— RoboFinder always starts with no default folder setting.
— SETFOLDER (and other commands that change RoboFinder’s default folder) doesn’t change the current default folder used by the rest of the system.
— The full pathname of the default folder is available in the !SETFOLDER/!SF system variable.
◊ sf "System Folder" — set default folder to system folder on startup disk
◊ SetFolder "My Disk:System Folder:Preferences" — set default folder exactly
◊ setfolder — cancel default folder setting
SHOWCOMMANDS/SC ON | OFF
— When turned on, commands are displayed in the script window as they are executed. When turned off (the default), the script window is hidden.
TEST <item/name>
— For debugging purposes. Displays information about the item. Shows full pathname, volume ID, parent directory ID, and whether item exists, is a folder, and/or is an alias.
- If the script window is visible, the information will appear only in the script window. If it is hidden, the information will appear in a dialog box.
◊ test !findfile — see what FINDFILE found
◊ test !gn — see what was returned by GETNAME
TRASH/TR <item>
— Put an item (file or folder) into the trash. This is safer than using DELETE/ERASE.
— Trashing a disk will eject it and/or dismount it (same as when you drag a disk into the trash).
— If an item with the same name is already in the trash, the name of the newer item placed in the trash will have ‘copy’ appended to it. If the name with ‘copy’ appended is already in the trash, a digit will be appended after ‘copy’. This is the same behavior as the Finder.
QUICKEYS
RoboFinder is particularly useful when used with QuicKeys. QuicKeys doesn’t include commands to manipulate files, and if you use it to record Finder operations, you must depend on items being where you expect them. Using RoboFinder to handle file manipulation is a lot more reliable — and RoboFinder’s searching and branching capabilities make it more flexible.
To run a RoboFinder script from within a QuicKeys sequence, make sure that the script ends with the QUIT command. Then make a QuicKeys sequence containing a File QuicKey pointing to the script document, and a WindowWait‚Ñ¢ extension QuicKey configured to wait for a window with the title "RoboFinder" (the title is case sensitive, don't include the quotes); RoboFinder draws this window offscreen just before it quits. When you run the QuicKeys sequence, it will open RoboFinder with the script you selected, RoboFinder will execute the script, then quit, and then the QuicKeys sequence will continue.
For more control, RoboFinder can return status information to QuicKeys by using the QUIT ERROR option (see QUIT) combined with the ButtonAction™ QuicKey extension. Write your RoboFinder script so that it calls QUIT if it is successful, but calls QUIT ERROR if it fails (which causes RoboFinder to add an ERROR button to its offscreen window). As above, set up the QuicKeys sequence to run the script, and call WindowWait to wait for the script to finish. After WindowWait, include a ButtonAction QuicKey that checks if the button ERROR does NOT exist (ERROR must be uppercase). Put the name of the QuicKey that runs the rest of the sequence in the ‘Pass’ field, and put the name of the error-handling QuicKey in the ‘Fail’ field. If you leave a field empty, instead of jumping to a different QuicKey, QuicKeys will just continue with the next item in the sequence after ButtonAction.
KNOWN PROBLEMS AND ‘GOTCHAS’
• Background disk compression utilities
— These utilities fall into two categories: those that work at the file level (such as AutoDoubler™), and those that work at the disk driver level (such as Times Two™).
— File-level utilities can cause some problems with RoboFinder, mainly when the type or creator of files is involved (e.g. using TYPE or CREATOR with FINDFILE won’t find what you want). Other problems are possible as well. If in doubt, disable all extensions and try the script again.
• COPY (when copying a folder)
— The new folder icon doesn’t appear in the default position for a new icon (it appears slightly below and to the right of the position the source folder had in its parent window).
— SHOW display includes invisible items (usually custom ICON files).
• FINDAGAIN
— Searches only on the disk containing the item found by the last FIND... command.
— Won’t find more than 100 items that match the criteria from the the last FIND... command.
— Won’t find anything if you used one of the -EST keywords in the last FINDFILE.
• FINDFILE, FINDFOLDER
— It isn’t possible to search only a specific folder; the entire disk must be searched. This is why you can’t have a colon in the search name.
— If you use these commands to decide if an item does or doesn’t exist, be very sure you are giving as much information as possible to find the item you really want to find. Including the file type and creator is strongly recommended, as is use of the STARTS or EXACT modifiers.
• GETFILE, GETFOLDER
— If the user selects/opens an alias with these commands, it will be resolved regardless of the RESOLVEALIASES setting.
• OPEN
— If you are using an extension or control panel that re-maps what applications open particular types of files (such as Easy Open™), a different application from the one RoboFinder expects may be opened; if so, RoboFinder may wait indefinitely (to stop waiting choose Stop from the File menu).
— Opening a non-Apple Event supporting application WITH a document is not reliable. System 7 will try to fool older applications into opening the document, but this doesn’t always work.
• TEST (when the parameter isn’t a file or folder)
— TEST will show a path, etc. for any parameter you pass it. This doesn’t make much sense if the parameter doesn’t point to a valid disk, file or folder.
VERSION HISTORY
1.3
— Fixed bug in GETFILE/FOLDER that caused a hang if RoboFinder was in the background.
— Fixed bug in GETFILE/FOLDER/NEWFILE that didn’t set default folder.
— Fixed bug that caused About… to crash on Macs without color QuickDraw.
— New commands CLEAR, FINDAGAIN, SET.
— Enhancements to COPY, NEWFOLDER, TEST, TRASH.
— Added support for user variables (see VARIABLES).
— New system variables !ERROR and !SETFOLDER (see VARIABLES, ERRORS, SETFOLDER).
— FLOPPY[1/2] can substitute for names of disks in floppy drives (see FLOPPY DISKS).
— RoboFinder comes to the foreground before displaying dialog boxes and messages.
— Recompiled with THINK C 5.0.4 (earlier versions used 5.0.1).
1.2
— Fixed bugs in FINDFILE/FOLDER that could find wrong item (or miss correct one).
— Fixed bug that caused spurious modification/virus errors. Checking is now safer, but more lenient.
— New commands OPEN, PAUSE, TEST.
— Error status available to calling QuicKeys sequence (see QUICKEYS and QUIT).
— DOS batch file-style line labels available (see LABEL).
— Hierarchical Open & Run... menu with Super Boomerang™.
1.1
— Fixed bug that caused IF NOT command to evaluate wrong.
— Fixed bug that caused spurious error messages with some non-Apple events.
— Fixed bug in QUIT that displayed ‘Execution cancelled by user’ message.